﻿//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using System.Threading.Tasks;
//using MySql.Data.MySqlClient;
//using parkMonitor.DB;

//namespace parkMonitor.DBLocation
//{
//    public class DBLocationOperator
//    {
//        private static MySqlConnection con;
//        private static MySqlCommand cmd;
//        IDBLocation oper = new Operator();

//        //查询手机号是否被注册
//        public bool IsTelRegister(string tel)
//        {
//            bool isTelRegister = false;
//            string sql = "select * from user where userTelephone = '" + tel + "'";
//            con = oper.getConn();
//            try
//            {
//                con.Open();
//                cmd = oper.getComm(sql, con);
//                int count = (int)cmd.ExecuteScalar();
//                if (count > 0)
//                {
//                    isTelRegister = true;
//                }
//                if (cmd != null)
//                {
//                    cmd.Dispose();
//                }
//                if (con != null)
//                {
//                    con.Close();
//                    con.Dispose();
//                }
//            }
//            catch
//            {
//                isTelRegister = false;
//            }
//            return isTelRegister;
//        }

//        //注册信息写入数据库,返回注册成功信息
//        public int InsertUser(string tel, string password)
//        {
//            string sql = "insert into user(userTelephone,userPassword,userLevel) values('" + tel + "','" + password + "',1)";
//            con = oper.getConn();
//            int userID = 0;
//            try
//            {
//                con.Open();
//                cmd = oper.getComm(sql, con);
//                oper.getInsert(cmd);
//                userID = Convert.ToInt32(cmd.LastInsertedId);
//                if (cmd != null)
//                {
//                    cmd.Dispose();
//                }
//                if (con != null)
//                {
//                    con.Close();
//                    con.Dispose();
//                }
//            }
//            catch (Exception ex)
//            {
//                Console.WriteLine(ex.Message);
//            }
//            return userID;
//        }

//        //根据电话号码查询userID
//        public int GetUserID(string tel)
//        {
//            int userID = 0;
//            MySqlDataReader reader = null;
//            string sql = "select userID from user where userTelephone = '" + tel + "'";
//            con = oper.getConn();
//            try
//            {
//                con.Open();
//                cmd = oper.getComm(sql, con);
//                reader = oper.getResultSet(cmd);
//                while (reader.Read())
//                {
//                    if (reader.HasRows)
//                    {
//                        userID = reader.GetInt32("userID");
//                    }
//                }
//                if (reader != null)
//                {
//                    reader.Close();
//                    reader.Dispose();
//                }
//                if (cmd != null)
//                {
//                    cmd.Dispose();
//                }
//                if (con != null)
//                {
//                    con.Close();
//                    con.Dispose();
//                }
//            }
//            catch (Exception ex)
//            {
//                Console.WriteLine(ex.ToString());
//            }
//            return userID;
//        }

//        //根据车库id查询剩余车位
//        public int getGarageFreeSpace(int garageID)
//        {
//            int garageFreeSpace = 0;
//            MySqlDataReader reader = null;
//            string sql = "select * from garage where garageID = '" + garageID + "'";
//            con = oper.getConn();
//            try
//            {
//                con.Open();
//                cmd = oper.getComm(sql, con);
//                reader = oper.getResultSet(cmd);
//                while (reader.Read())
//                {
//                    if (reader.HasRows)
//                    {
//                        garageFreeSpace = reader.GetInt32("garageFreeSpace");
//                    }
//                }
//                if (reader != null)
//                {
//                    reader.Close();
//                    reader.Dispose();
//                }
//                if (cmd != null)
//                {
//                    cmd.Dispose();
//                }
//                if (con != null)
//                {
//                    con.Close();
//                    con.Dispose();
//                }
//            }
//            catch (Exception ex)
//            {
//                Console.WriteLine(ex.ToString());
//            }
//            return garageFreeSpace;
//        }

//        //查询停车记录id
//        public int GetParkingRecordsID(string numberPlate)
//        {
//            int parkingRecordsID = 0;
//            MySqlDataReader reader = null;
//            string sql = "select parkingRecordsID from parkingrecords where numberPlate = '" + numberPlate + "' and parkingRecordsState = 3";
//            con = oper.getConn();
//            try
//            {
//                con.Open();
//                cmd = oper.getComm(sql, con);
//                reader = oper.getResultSet(cmd);
//                while (reader.Read())
//                {
//                    if (reader.HasRows)
//                    {
//                        parkingRecordsID = reader.GetInt32("parkingRecordsID");
//                    }
//                }
//                if (reader != null)
//                {
//                    reader.Close();
//                    reader.Dispose();
//                }
//                if (cmd != null)
//                {                    
//                    cmd.Dispose();
//                }
//                if (con != null)
//                {
//                    con.Close();
//                    con.Dispose();
//                }
//            }
//            catch (Exception ex)
//            {
//                Console.WriteLine(ex.ToString());
//            }
//            return parkingRecordsID;
//        }

//        //车库有无此车
//        public bool IsNumberPlate(string numberPlate,int garageID)
//        {
//            bool isNumberPlate = true;
//            string sql = "select * from parkingrecords where numberPlate = '" + numberPlate + "' and parkingRecordsState = 3 and garageID = '"+garageID+"'";
//            con = oper.getConn();
//            try
//            {
//                con.Open();
//                cmd = oper.getComm(sql, con);
//                int count = (int)cmd.ExecuteScalar();
//                if (count > 0)
//                {
//                    isNumberPlate = true;
//                }
//                if (cmd != null)
//                {
//                    cmd.Dispose();
//                }
//                if (con != null)
//                {
//                    con.Close();
//                    con.Dispose();
//                }
//            }
//            catch
//            {
//                isNumberPlate = false;
//            }
//            return isNumberPlate;
//        }

//        //数据插入记录表,并返回停车记录id
//        public int InsertToParkingRecords(int parkingStatus, int userID, string numberPlate, int parkingSpaceID, int garageID, int parkingRecordsState, string realParkTime, int frontWheelbase, int rearWheelbase)
//        {
//            string sql = "insert into parkingrecords(parkingStatus,userID,numberPlate,parkingSpaceID,garageID,parkingRecordsState,realParkTime,frontWheelbase,rearWheelbase) values('" + parkingStatus + "','" + userID + "','" + numberPlate + "','" + parkingSpaceID + "','" + garageID + "','" + parkingRecordsState + "','" + realParkTime + "','" + frontWheelbase + "','" + rearWheelbase + "')";
//            con = oper.getConn();
//            int parkingRecordsID = 0;
//            try
//            {
//                con.Open();
//                cmd = oper.getComm(sql, con);
//                oper.getInsert(cmd);
//                parkingRecordsID = Convert.ToInt32(cmd.LastInsertedId);
//                if (cmd != null)
//                {
//                    cmd.Dispose();
//                }
//                if (con != null)
//                {
//                    con.Close();
//                    con.Dispose();
//                }
//            }
//            catch (Exception ex)
//            {
//                Console.WriteLine(ex.Message);
//            }
//            return parkingRecordsID;
//        }

//        //插入车辆表
//        public void InsertVehicle(string numberPlate, int vehiclepParkState, int parkingRecordsID, int parkingSpaceID, int vehicleTypeConfirm)
//        {
//            string sql = "insert into vehicle(numberPlate,vehiclepParkState,parkingRecordsID,parkingSpaceID,vehicleTypeConfirm) values('" + numberPlate + "','" + vehiclepParkState + "','" + parkingRecordsID + "','" + parkingSpaceID + "','" + vehicleTypeConfirm + "')";
//            con = oper.getConn();
//            try
//            {
//                con.Open();
//                cmd = oper.getComm(sql, con);
//                oper.getUpdate(cmd);
//                if (cmd != null)
//                {
//                    cmd.Dispose();
//                }
//                if (con != null)
//                {
//                    con.Close();
//                    con.Dispose();
//                }
//            }
//            catch (Exception ex)
//            {
//                Console.WriteLine(ex.Message);
//            }
//        }

//        //更新车库表剩余车位数
//        public void UpdateGarageFreeSpace(int garageFreeSpace, int garageID)
//        {
//            string sql = "update garage set garageFreeSpace = '" + garageFreeSpace + "' where garageID = '" + garageID + "'";
//            con = oper.getConn();
//            try
//            {
//                con.Open();
//                cmd = oper.getComm(sql, con);
//                oper.getUpdate(cmd);
//                if (cmd != null)
//                {
//                    cmd.Dispose();
//                }
//                if (con != null)
//                {
//                    con.Close();
//                    con.Dispose();
//                }
//            }
//            catch (Exception ex)
//            {
//                Console.WriteLine(ex.Message);
//            }
//        }

//        //更新车位状态
//        public void UpdateParkingSpaceState(int parkingSpaceID, int parkingSpaceState)
//        {
//            string sql = "update parkingspace set parkingSpaceState = '" + parkingSpaceState + "'where parkingSpaceID = '" + parkingSpaceID + "'";
//            con = oper.getConn();
//            try
//            {
//                con.Open();
//                cmd = oper.getComm(sql, con);
//                oper.getUpdate(cmd);
//                if (cmd != null)
//                {
//                    cmd.Dispose();
//                }
//                if (con != null)
//                {
//                    con.Close();
//                    con.Dispose();
//                }
//            }
//            catch (Exception ex)
//            {
//                Console.WriteLine(ex.Message);
//            }
//        }

//        //更新停车记录表
//        public void UpdateParkingRecords(int parkingStatus, int parkingRecordsState, string realGetTime, int parkingRecordsID)
//        {
//            string sql = "update parkingrecords set parkingStatus = '"+parkingStatus+"', parkingRecordsState = '" + parkingRecordsState + "',realGetTime = '" + realGetTime + "'where parkingRecordsID = '" + parkingRecordsID + "'";
//            con = oper.getConn();
//            try
//            {
//                con.Open();
//                cmd = oper.getComm(sql, con);
//                oper.getUpdate(cmd);
//                if (cmd != null)
//                {
//                    cmd.Dispose();
//                }
//                if (con != null)
//                {
//                    con.Close();
//                    con.Dispose();
//                }
//            }
//            catch (Exception ex)
//            {
//                Console.WriteLine(ex.Message);
//            }
//        }

//        //根据车牌号更新车辆状态
//        public void UpdateVehicleParkState(string numberPlate, int vehiclepParkState)
//        {
//            string sql = "update vehicle set vehiclepParkState = '" + vehiclepParkState + "'where numberPlate = '" + numberPlate + "'";
//            con = oper.getConn();
//            try
//            {
//                con.Open();
//                cmd = oper.getComm(sql, con);
//                oper.getUpdate(cmd);
//                if (cmd != null)
//                {
//                    cmd.Dispose();
//                }
//                if (con != null)
//                {
//                    con.Close();
//                    con.Dispose();
//                }
//            }
//            catch (Exception ex)
//            {
//                Console.WriteLine(ex.Message);
//            }
//        }

//        //判断车辆表中是否存在该车辆号牌
//        public bool IsNumberPlateFromVehicle(string numberPlate)
//        {
//            bool isNumberPlateFromVehicle = true;
//            string sql = "select * from vehicle where numberPlate = '" + numberPlate + "'";
//            con = oper.getConn();
//            try
//            {
//                con.Open();
//                cmd = oper.getComm(sql, con);
//                int count = (int)cmd.ExecuteScalar();
//                if (count > 0)
//                {
//                    isNumberPlateFromVehicle = true;
//                }
//                if (cmd != null)
//                {
//                    cmd.Dispose();
//                }
//                if (con != null)
//                {
//                    con.Close();
//                    con.Dispose();
//                }
//            }
//            catch
//            {
//                isNumberPlateFromVehicle = false;
//            }
//            return isNumberPlateFromVehicle;
//        }

//        //根据车牌号更新车辆表
//        public void UpdateVehicle(string numberPlate, int vehiclepParkState, int parkingRecordsID, int parkingSpaceID, int vehicleTypeConfirm)
//        {
//            string sql = "update vehicle set vehiclepParkState = '" + vehiclepParkState + "',parkingRecordsID = '" + parkingRecordsID + "',parkingSpaceID = '" + parkingSpaceID + "',vehicleTypeConfirm = '" + vehicleTypeConfirm + "' where numberPlate = '" + numberPlate + "'";
//            con = oper.getConn();
//            try
//            {
//                con.Open();
//                cmd = oper.getComm(sql, con);
//                oper.getUpdate(cmd);
//                if (cmd != null)
//                {
//                    cmd.Dispose();
//                }
//                if (con != null)
//                {
//                    con.Close();
//                    con.Dispose();
//                }
//            }
//            catch (Exception ex)
//            {
//                Console.WriteLine(ex.Message);
//            }
//        }

//        //查询手动停车的车位ID
//        public int[] GetAllParkingSpaceID(int garageID)
//        {
//            int parkingSpaceID = 0;
//            List<int> listID = new List<int>();
//            MySqlDataReader reader = null;
//            //string sql = "select parkingSpaceID from parkingrecords where parkingStatus = 1 and parkingRecordsState = 3";
//            string sq1 = "select parkingSpaceState from parkingspace where garageID = '" + garageID + "'";
//            con = oper.getConn();
//            try
//            {
//                con.Open();
//                cmd = oper.getComm(sq1, con);
//                reader = oper.getResultSet(cmd);
//                while (reader.Read())
//                {
//                    if (reader.HasRows)
//                    {
//                        parkingSpaceID = reader.GetInt32("parkingSpaceID");
//                    }
//                }
//                if (reader != null)
//                {
//                    reader.Dispose();
//                }
//                if (cmd != null)
//                {
//                    cmd.Dispose();
//                }
//                if (con != null)
//                {
//                    con.Close();
//                    con.Dispose();
//                }
//            }
//            catch (Exception ex)
//            {
//                Console.WriteLine(ex.ToString());
//            }         
//            listID.Add(parkingSpaceID);
//            return listID.ToArray();
//        }

//        //查询车位位置及状态，返回list
//        public List<Parking_Space> GetParkingSpace(int garageID)
//        {
//            List<Parking_Space> lps = new List<Parking_Space>();
//            MySqlDataReader reader = null;
//            string sql = "select * from parkingspace where parkingSpaceState = 0 and garageID = '" + garageID + "'";
//            con = oper.getConn();
//            try
//            {
//                con.Open();
//                cmd = oper.getComm(sql, con);
//                reader = oper.getResultSet(cmd);
//                while (reader.Read())
//                {
//                    if (reader.HasRows)
//                    {
//                        int parkingSpaceID = reader.GetInt32("parkingSpaceID");
//                        //float parkingSpaceWeight = reader.GetFloat("parkingSpaceWeight");
//                        //int parkingSpaceStatement = reader.GetInt32("parkingSpaceState");
//                        //int garageID = reader.GetInt32("garageID");
//                        int parkingSpaceX = reader.GetInt32("parkingSpaceX");
//                        int parkingSpaceY = reader.GetInt32("parkingSpaceY");
//                        int parkingSpaceZ = reader.GetInt32("parkingSpaceZ");
//                        Parking_Space ps = new Parking_Space();
//                        ps.parkingSpaceID = parkingSpaceID;
//                        ps.garageID = garageID;
//                        //ps.parkingSpaceWeight = parkingSpaceWeight;
//                        //ps.parkingSpaceStatement = parkingSpaceStatement;
//                        ps.parkingSpaceX = parkingSpaceX;
//                        ps.parkingSpaceY = parkingSpaceY;
//                        ps.parkingSpaceZ = parkingSpaceZ;

//                        lps.Add(ps);
//                    }
//                }
//                if (reader != null)
//                {
//                    reader.Close();
//                    reader.Dispose();
//                }
//                if (cmd != null)
//                {
//                    cmd.Dispose();
//                }
//                if (con != null)
//                {
//                    con.Close();
//                    con.Dispose();
//                }
//            }
//            catch (Exception ex)
//            {
//                Console.WriteLine(ex.ToString());
//            }
//            return lps;
//        }

//        //根据车牌查询得到车库id和车位id以及轮距
//        public Vehicle GetVehicle(string numberPlate, int garageID)
//        {
//            // List<Vehicle> lVehicle = new List<Vehicle>();
//            Vehicle v = new Vehicle();
//            MySqlDataReader reader = null;
//            string sql = "select * from parkingrecords where numberPlate = '" + numberPlate + "' and parkingRecordsState = 3 and garageID = '" + garageID + "'";
//            con = oper.getConn();
//            try
//            {
//                con.Open();
//                cmd = oper.getComm(sql, con);
//                reader = oper.getResultSet(cmd);
//                while (reader.Read())
//                {
//                    if (reader.HasRows)
//                    {
//                        int parkingSpaceID = reader.GetInt32("parkingSpaceID");
//                        int frontwheelbase = reader.GetInt32("frontwheelbase");
//                        int rearwheelbase = reader.GetInt32("rearwheelbase");
//                        v.parkingSpaceID = parkingSpaceID;
//                        v.garageID = garageID;
//                        v.frontwheelbase = frontwheelbase;
//                        v.rearwheelbase = rearwheelbase;
//                    }
//                }
//                if (reader != null)
//                {
//                    reader.Close();
//                    reader.Dispose();
//                }
//                if (cmd != null)
//                {
//                    cmd.Dispose();
//                }
//                if (con != null)
//                {
//                    con.Close();
//                    con.Dispose();
//                }
//            }
//            catch (Exception ex)
//            {
//                Console.WriteLine(ex.ToString());
//            }
//            return v;
//        }

//        //根据车位id获得x,y,z
//        public Fetching_Space GetFetchingSpace(int parkingSpaceID)
//        {
//            Fetching_Space fs = new Fetching_Space();
//            MySqlDataReader reader = null;
//            string sql = "select * from parkingspace where parkingSpaceID = '" + parkingSpaceID + " '";
//            con = oper.getConn();
//            try
//            {
//                con.Open();
//                cmd = oper.getComm(sql, con);
//                reader = oper.getResultSet(cmd);
//                while (reader.Read())
//                {
//                    if (reader.HasRows)
//                    {
//                        int parkingSpaceX = reader.GetInt32("parkingSpaceX");
//                        int parkingSpaceY = reader.GetInt32("parkingSpaceY");
//                        int parkingSpaceZ = reader.GetInt32("parkingSpaceZ");
//                        fs.parkingSpaceX = parkingSpaceX;
//                        fs.parkingSpaceY = parkingSpaceY;
//                        fs.parkingSpaceZ = parkingSpaceZ;
//                    }
//                }
//                if (reader != null)
//                {
//                    reader.Close();
//                    reader.Dispose();
//                }
//                if (cmd != null)
//                {
//                    cmd.Dispose();
//                }
//                if (con != null)
//                {
//                    con.Close();
//                    con.Dispose();
//                }
//            }
//            catch (Exception ex)
//            {
//                Console.WriteLine(ex.ToString());
//            }
//            return fs;
//        }

//    }
//}
